Principal (IAM JSON Policy)
アクセス元のエンティティを指定する
IAM ユーザーやロール
AWS アカウント
サービス(例: lambda.amazonaws.com)
よくある例
指定した AWS アカウントに許可を与える
code:json
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789012:root"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-bucket/*"
}
123456789012 アカウント内の全エンティティ(root含む)に許可を与える
IAMロールやIAMユーザーを指定
code:json
"Principal": {
"AWS": "arn:aws:iam::123456789012:role/MyRole"
}
サービスを指定(例: Lambda による実行)
code:json
"Principal": {
"Service": "lambda.amazonaws.com"
}
全てのユーザーに公開
code:json
"Principal": "*"
セキュリティ上のリスクがあるため、使う際は慎重にする
例えば、IPアドレスで別途制限するなど